/**
 * 格式化时间
 * @param {string} time 时间字符串
 * @param {string} format 格式化模式
 * @returns {string} 格式化后的时间
 */
export function formatTime(time, format = 'YYYY-MM-DD HH:mm:ss') {
    if (!time) {
        return ''
    }
    const date = new Date(time)
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate()
    const hours = date.getHours()
    const minutes = date.getMinutes()
    const seconds = date.getSeconds()

    const map = {
        'YYYY': year.toString(),
        'MM': month.toString().padStart(2, '0'),
        'DD': day.toString().padStart(2, '0'),
        'HH': hours.toString().padStart(2, '0'),
        'mm': minutes.toString().padStart(2, '0'),
        'ss': seconds.toString().padStart(2, '0')
    }

    return format.replace(/YYYY|MM|DD|HH|mm|ss/g, matched => map[matched])
}

/**
 * 格式化金额
 * @param {number} value 金额
 * @returns {string} 格式化后的金额
 */
export function formatPrice(value) {
    if (!value) return '0.00'
    // 转为两位小数的金额
    return Number(value).toFixed(2)
}

/**
 * 格式化数字
 * @param {number} value 数值
 * @returns {string} 带千分位的数字
 */
export function formatNumber(value) {
    if (!value) return '0'
    return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')
}

/**
 * 状态过滤器
 * @param {number} status 状态码
 * @param {object} statusMap 状态映射
 * @returns {string} 状态文本
 */
export function formatStatus(status, statusMap = {
    0: '禁用',
    1: '启用'
}) {
    return statusMap[status] || '未知'
}

/**
 * 字符串截断
 * @param {string} str 字符串
 * @param {number} length 长度
 * @returns {string} 截断后的字符串
 */
export function truncate(str, length = 20) {
    if (!str) return ''
    if (str.length <= length) return str
    return `${str.substring(0, length)}...`
} 